package com.pet.annotation;

import com.pet.enumeration.OperationType;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * 该类主要是作为一个注解快速定位到需要字段填充的方法，并获得相关的属性（OperationType）传给操作方法类（切面类） AutoFillAspect
 */
@Target(ElementType.METHOD)//表示这个注解的目标是一个方法

//指定了AutoFill的生命周期是运行时。RUNTIME意味着该注解在运行时仍然可见，因此可以在运行时通过反射机制读取它。
@Retention(RetentionPolicy.RUNTIME)
public @interface AutoFill {//@interface 是Java中用来定义注解的关键字

    //这是AutoFill注解的一个元素（或称为成员）。当你为某个方法使用这个注解时，你需要提供一个OperationType的值。
    OperationType value(); //数据库操作类型：Update Insert

}
